home *** CD-ROM | disk | FTP | other *** search
- /*
- ==============================================================================
- WordUp Graphics Toolkit Version 5.0
- Demonstration Program 24
-
- Display special effects using wwipe command.
-
- *** PROJECT ***
- This program requires the file WGT5_WC.LIB to be linked.
-
- *** DATA FILES ***
- Make sure that you have WGT2.PCX in your executable directory.
- WATCOM C++ VERSION
- ==============================================================================
- */
-
- #include <conio.h>
- #include <stdio.h>
- #include <wgt5.h>
-
-
- void main(void)
- {
- block screen1, screen2; /* Two virtual screens */
- color palette[256]; /* Our palette */
- short i, j; /* Loop counters */
- short oldmode; /* Stores initial video mode */
-
- if ( !vgadetected () )
- {
- printf("Error - VGA card required for any WGT program.\n");
- exit (0);
- }
- printf ("WGT Example #24\n\n");
- printf ("The WWIPE command is used to show several different screen wipes.\n");
- printf ("Using WRETRACE keeps the speed constant on all computers. Try removing\n");
- printf ("all retraces to obtain maximum speed and notice the difference.\n");
- printf ("A keypress advances to the next wipe at each point.\n");
- printf ("\n\nPress any key to continue.\n");
- getch ();
-
- oldmode = wgetmode (); /* Preserve initial video mode */
- vga256 (); /* Initialize graphics mode */
-
- screen1 = wloadpcx ("wgt2.pcx", palette); /* Load image file from disk */
- wtextcolor (15); /* Use index 15 for text */
-
- /* Note: This text will be on our second screen - used for wipes */
- wouttextxy (0, 0, NULL, "SCREEN BUFFER #2");
- wouttextxy (0, 50, NULL, "This screen is one of our 2 screens");
- wouttextxy (0, 58, NULL, "used to perform the wipe effect.");
- wouttextxy (46, 100, NULL, "Press a key to perform wipe");
-
- screen2 = wnewblock (0, 0, 319, 199); /* Allocate memory for screen2 */
- wnormscreen (); /* Make sure we're drawing on default screen */
- wsetpalette (0, 255, palette); /* Now use the palette */
-
- getch (); /* Get a keypress */
-
- for (i = 0; i < 200; i++)
- {
- wwipe (0, 0, 319, i, screen1); /* Wipe screen down from right */
- wwipe (319, 199, 0, 199 - i, screen1); /* Wipe screen up from left */
- wretrace ();
- }
- getch ();
-
-
- /* Now wipe on the black screen using horizontal lines meeting at middle */
- for (i = 0; i < 100; i++)
- {
- wwipe (0, i, 319, i, screen2);
- wwipe (0, 199 - i, 319, 199 - i, screen2);
- wretrace ();
- }
- getch ();
-
- /* Now perform a "circular" wipe, by going around the screen from center */
- for (i = 0; i < 320; i++)
- {
- wwipe (159, 99, i, 0, screen1);
- wretrace ();
- }
- for (i = 0; i < 200; i++)
- {
- wwipe (159, 99, 319, i, screen1);
- wretrace ();
- }
- for (i = 319; i >= 0; i--)
- {
- wwipe (159, 99, i, 199, screen1);
- wretrace ();
- }
- for (i = 199; i >= 0; i--)
- {
- wwipe (159, 99, 0, i, screen1);
- wretrace ();
- }
- getch ();
-
- /* Clear with black screen by wiping top to bottom */
- for (i = 0; i < 200; i++)
- {
- wwipe (0, i, 319, i, screen2);
- wretrace ();
- }
- getch ();
-
- wfreeblock (screen1); /* Remember to free that memory */
- wfreeblock (screen2);
- wsetmode (oldmode); /* Restore initial video mode */
- }
-